if (app.documents.length === 0) {
    alert("请打开一个文档");
    exit();
}

app.doScript(main, ScriptLanguage.JAVASCRIPT, undefined, UndoModes.ENTIRE_SCRIPT, "按页面位置连接文本框并插入分栏符");

function main() {
    var doc = app.activeDocument;
    var sel = app.selection;

    if (sel.length < 2) {
        alert("请至少选择两个文本框");
        return;
    }

    // 仅保留文本框
    var textFrames = [];
    for (var i = 0; i < sel.length; i++) {
        if (sel[i] instanceof TextFrame) {
            textFrames.push(sel[i]);
        }
    }

    if (textFrames.length < 2) {
        alert("请至少选择两个文本框");
        return;
    }

    // 排序：上到下、左到右
    textFrames.sort(function(a, b) {
        var ay = a.geometricBounds[0]; // top
        var ax = a.geometricBounds[1]; // left
        var by = b.geometricBounds[0];
        var bx = b.geometricBounds[1];

        if (Math.abs(ay - by) < 3) {
            return ax - bx;
        } else {
            return ay - by;
        }
    });

    // 插入分栏符并连接文本框
    for (var j = 0; j < textFrames.length - 1; j++) {
        var currentFrame = textFrames[j];
        try {
            // 插入分栏符
            currentFrame.insertionPoints[-1].contents = SpecialCharacters.COLUMN_BREAK;

            // 连接到下一个文本框
            currentFrame.nextTextFrame = textFrames[j + 1];
        } catch (e) {
            alert("处理第 " + (j + 1) + " 个文本框时出错：" + e);
            break;
        }
    }

    alert("完成：文本框已连接并插入分栏符！");
}
